課程名稱 |
計算機程式 Computer Programming |
開課學期 |
107-1 |
授課對象 |
數學系 |
授課教師 |
林宗男 |
課號 |
EE1004 |
課程識別碼 |
901 10210 |
班次 |
03 |
學分 |
3.0 |
全/半年 |
半年 |
必/選修 |
必修 |
上課時間 |
星期二6(13:20~14:10)星期三8,9(15:30~17:20) |
上課地點 |
博理113博理113 |
備註 |
本系優先。數學系10名。 限本系所學生(含輔系、雙修生) 總人數上限:60人 |
Ceiba 課程網頁 |
http://ceiba.ntu.edu.tw/1071_Python |
課程簡介影片 |
|
核心能力關聯 |
核心能力與課程規劃關聯圖 |
課程大綱
|
為確保您我的權利,請尊重智慧財產權及不得非法影印
|
課程概述 |
Python是一門十分簡潔、高效率的程式語言;且其學習曲線平緩,網路上的學習資源非常多,很適合程式新手入門。雖然適合初學者,不過python的開源套件也非常多,可以深入各領域的研究。例如最近發展中的人工智慧所使用的深度學習方法,Python所擁用的套件在所有的程式語言中幾乎是最完善的。本課程希望以深入淺出的方式,帶領學生從python入門,最後能夠利用程式碼來解決各領域的專業問題。
本課程以物件導向(Object-oriented programming)概念為主軸介紹程式語言。 本課程會以 Python 語言為主要介紹OOP的語言。 Python 語言強調其 "code readability". 對於同樣的問題 ,用 Python 來解決的程式會比用 c/c++ 來的簡單。 根據最新統記指出,Python 是美國頂尖大學裡最常用的入門程式語言。
本課程以Python3 程式語言介紹OOP的概念並比較Python與C++的不同之處,此外還會利用vPython以3D模擬的方式模擬物體運動。
除了正課上課時間,本課程每個星期二晚上還有提供電腦教室上機練習。
1. Intro. to Python and Class
2.Control structure
3.List, Set, Dict
4.Strings
5.Functions
6.Classes and data abstraction
7.Operator overloading
8.Inheritance
9.Polymorphism |
課程目標 |
能夠熟練寫Python程式碼,並以此來解決問題。 |
課程要求 |
本課程完全不需要程式語言的先備能力。但修課同學必須注意,在學期開始之前必須要先安裝好程式環境,並至網路資源(Codecademy)學習Python。之後還要依照Ceiba上提供的Vpython教材練習。 |
預期每週課後學習時數 |
|
Office Hours |
另約時間 |
指定閱讀 |
待補 |
參考書目 |
教科書 :
[1] How to Think Like a Computer Scientist
http://www.greenteapress.com/thinkpython/thinkCSpy.pdf
[2] Python Tutorial
https://docs.python.org/2/tutorial/
[3] Problem Solving with Algorithms and Data Structures
http://interactivepython.org/runestone/static/pythonds/index.html
[3] Problem Solving with Algorithms and Data Structures
http://interactivepython.org/runestone/static/pythonds/index.html
網路學習資源:
[1]Codecademy
https://www.codecademy.com/catalog/language/python
|
評量方式 (僅供參考) |
No. |
項目 |
百分比 |
說明 |
1. |
Mid-term Exam |
30% |
|
2. |
Homework + Lab |
25% |
|
3. |
Final Exam |
30% |
|
4. |
Final Project |
15% |
|
|
週次 |
日期 |
單元主題 |
第1週 |
9/11,9/12 |
Plotting with Matplotlib |
第2週 |
9/18,9/19 |
(1) Variables, Expressions, and Statements
(2) String Format, Operation, and I/O |
第3週 |
9/25,9/26 |
(1) Logics and Conditionals
(2) Loops and Lists |
第4週 |
10/02,10/03 |
(1) More about List
(2) Functions |
第6週 |
10/16,10/17 |
(1) More about functions
(2) Recursions |
第7週 |
10/23,10/24 |
(1) Sorting Algorithms
(2) Set and Dict |
第8週 |
10/30,10/31 |
(1) More about Strings
(2) Machine Learning: Digit Recognition |
第9週 |
11/06,11/07 |
Midterm Review (Asking Questions) |
第10週 |
11/13,11/14 |
Midterm Exam (11/13 18:30 @ 計中 212) |
第11週 |
11/20,11/21 |
(1) More about Functions
(2) Function Decorators |
第12週 |
11/27,11/28 |
(1) Class and object |
第13週 |
12/04,12/05 |
(1) Class and Function
(2) Object-Oriented Programming |
第14週 |
12/11,12/12 |
(1) More about Class
(2) Data Abstraction |
第15週 |
12/18,12/19 |
(1) Inheritance |
第17週 |
1/01,1/02 |
Final Project Demo
(1) 01/02 15:30 @ BL113
(2) 01/03 18:30 @ BL113 |
第18週 |
1/08,1/09 |
Final Exam (01/08 18:30 @ 計中 212) |
|